<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title>小熊猫C++入门教程 | pansis.io</title>
<link rel="shortcut icon" href="https://github.pansis.site/favicon.ico">
<link href="https://github.pansis.site/styles/main.css" rel="stylesheet">
<link href="//at.alicdn.com/t/c/font_1678829_b85ccgkdqkr.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css" rel="stylesheet">
<link rel="alternate" type="application/rss+xml" title="pansis.io » Feed" href="https://github.pansis.site/atom.xml">
        <meta name="description" content="小熊猫C++
小熊猫C++简介
小熊猫C++是基于Dev C++的二次开发版本。相比于Dev C++，增加了几项使用功能，包括但不限于代码提示、调试自动显示全部变量等功能。在本课程中，该IDE几乎可以做到与VS Code、Clion等现代I..." />
        <meta name="keywords" content="24航C,教程" />
        <!-- OG -->
        <meta property="og:locale" content="zh_CN">
        <meta property="og:title" content="小熊猫C++入门教程" />
        <meta property="og:type" content="article" />
        <meta property="og:description" content="小熊猫C++
小熊猫C++简介
小熊猫C++是基于Dev C++的二次开发版本。相比于Dev C++，增加了几项使用功能，包括但不限于代码提示、调试自动显示全部变量等功能。在本课程中，该IDE几乎可以做到与VS Code、Clion等现代I...">
        <meta property="og:url" content="https://github.pansis.site/post/小熊猫C++入门教程/" />
        <meta property="og:site_name" content="pansis.io">
        <meta property="og:updated_time" content="2024-09-17">
        <meta property="og:image" content="" />
        <meta property="og:image:secure_url" content="">
        <meta property="og:image:alt" content="小熊猫C++入门教程">
        <!-- Twitter (post.ejs) -->
        <meta name="twitter:card" content="summary_large_image">
        <meta name="twitter:title" content="小熊猫C++入门教程">
        <meta name="twitter:description" content="小熊猫C++
小熊猫C++简介
小熊猫C++是基于Dev C++的二次开发版本。相比于Dev C++，增加了几项使用功能，包括但不限于代码提示、调试自动显示全部变量等功能。在本课程中，该IDE几乎可以做到与VS Code、Clion等现代I...">
        <!-- <meta name="twitter:site" content="@WBoy0609">
        <meta name="twitter:creator" content="@WBoy0609"> -->
        <meta name="twitter:image" content="">
</head>

<body>
    <div class="main animated">
        <div class="header animated fadeInDown">
    <div class="site_title_container">
        <div class="site_title">
            <a href="https://github.pansis.site">pansis.io</a>
        </div>
    </div>
    <div class="my_socials">
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
        <a href="https://github.pansis.site/atom.xml" title="rss" target="_blank"><i class="iconfont icon-rss"></i></a>
    </div>
</div>

    <div class="header_menu">
        
            
                <a href="/" class="menu">首页</a>
            
        
            
                <a href="/tag/GWAaV2nvk/" class="menu">程序设计课程</a>
            
        
            
                <a href="/tag/24hangc" class="menu">比赛</a>
            
        
            
                <a href="/tag/L7r9STb75/" class="menu">Python教程</a>
            
        
            
                <a href="/tags" class="menu">分类</a>
            
        
        <div class="gridea-search-div">
            <form id="gridea-search-form" action="https://github.pansis.site/search/">
                <input class="gridea-search-input" autocomplete="off" spellcheck="false" name="q"/>
            </form>
        </div>
    </div>

            <div class="autopagerize_page_element">
                <div class="content">
                    <div class="post_page">
                        <div class="post animated fadeInDown">
                            <div class="post_title post_detail_title">
                                <h2>
                                    小熊猫C++入门教程
                                </h2>
                                <span class="article-info">
                                    2024-09-17, 947 words, 4 min read
                                </span>
                            </div>
                            <div class="post_content markdown">
                                <p class="md_block">
                                    <span class="md_line md_line_start md_line_end">
                                        <h2 id="小熊猫c">小熊猫C++</h2>
<h2 id="小熊猫c简介">小熊猫C++简介</h2>
<p>小熊猫C++是基于Dev C++的二次开发版本。相比于Dev C++，增加了几项使用功能，包括但不限于代码提示、调试自动显示全部变量等功能。在本课程中，该IDE几乎可以做到与VS Code、Clion等现代IDE同等程度的便利（但大型项目上还得用VS Code、Clion等）。</p>
<h2 id="安装包地址">安装包地址</h2>
<p>小熊猫C++是即装即用的C与C++的IDE，他自身带有C与C++的编译器。</p>
<p>安装包地址：（仅含有Windows安装包，Mac用户可自行上官网下载）</p>
<p>https://bhpan.buaa.edu.cn/link/AA81619A7482034198A42557A0ABE8E357<br>
文件夹名：24航C<br>
有效期限：永久有效</p>
<p>下载好的安装包，按照安装程序提示安装。</p>
<p>安装后，打开小熊猫C++，配置选项按下面的配置<br>
<img src="http://cos.pansis.site/image-20240917213414201.png?abc123" alt="image-20240917213414201" loading="lazy"></p>
<h2 id="helloworld程序">Hello，world程序</h2>
<p>点击 “文件-新建-新建C/C++文件”，得到一个新的源代码文件。</p>
<p>写一份hello，world的代码</p>
<figure data-type="image" tabindex="1"><img src="http://cos.pansis.site/image-20240917213646770.png?abc123" alt="image-20240917213646770" loading="lazy"></figure>
<p>点击运行按钮</p>
<figure data-type="image" tabindex="2"><img src="http://cos.pansis.site/image-20240917213848085.png?abc123" alt="image-20240917213848085" loading="lazy"></figure>
<p>在保存为界面中选择自己存放代码的文件夹，同时保存类型务必选择c文件</p>
<img src="http://cos.pansis.site/image-20240917213933890.png?abc123" alt="image-20240917213933890" style="zoom:43%;" />
<p>保存后，程序完成编译并会运行。</p>
<figure data-type="image" tabindex="3"><img src="http://cos.pansis.site/202309031853073.png" alt="image-20230903185340038" loading="lazy"></figure>
<p>出现上述界面就代表着你已经成功的写出了最经典的程序 hello，world。</p>
<p>此文档为新手入门文档，如想继续深入进阶功能，请访问官方文档<br>
<a href="https://royqh.net/redpandacpp/docsy/docs/overview/">概述 | 小熊猫C++ (royqh.net)</a></p>
<h2 id="调试">调试</h2>
<p>**对于编程学习，可以说调试能力是最重要的技能，没有之一！**所谓调试程序，就是控制编译器一行一行地执行代码，过程中可以清楚看到每个变量值的变化情况、函数的调用过程等，进而发现程序中隐藏的错误或者低效的代码。</p>
<p>以下边的代码为例子:</p>
<pre><code class="language-c"> #include &lt;stdio.h&gt;
 int main() {
     int n, cnt = 0;
 
     scanf(&quot;%d&quot;, &amp;n);
     for(int j = 0; j &lt; n; j ++) {
         cnt = cnt + 1;
     }
     printf(&quot;%d&quot;, cnt);

     return 0;
}
</code></pre>
<p><strong>添加断点，这是调试功能的核心，下边是几个步骤：</strong></p>
<p>1.左键添加断点，主要是在比较容易出错，或者有怀疑点的位置</p>
<img src="http://cos.pansis.site/image-20240917214129611.png?abc123" alt="image-20240917214129611" style="zoom:43%;" />
<p>2.启动调试</p>
<img src="http://cos.pansis.site/image-20240917214238199.png?abc123" alt="image-20240917214238199" style="zoom:50%;" />
<p>点击调试或者按F5启动调试功能，会出现黑色的控制台窗口</p>
<p>此时根据代码，你先输入一个数给变量n赋值，随后代码会走到第六行scanf等待你的键盘输入</p>
<p>这里我们输入5回车</p>
<p>断点行会变为蓝色，意味着此时代码运行到第8行并停止</p>
<p>右下角变量n由于存储了键盘的输入变为了5，cnt由于还没有执行仍为0</p>
<img src="http://cos.pansis.site/image-20240917214415731.png?abc123" alt="image-20240917214415731" style="zoom:30%;" />
<p>点击单步跨过，代码会继续执行一行，根据逻辑会运行到for循环入口，cnt由于执行了一次变为了1，而n由于没有操作所以还是5</p>
<img src="http://cos.pansis.site/image-20240917214608718.png?abc123" alt="image-20240917214608718" style="zoom:40%;" />
<p><strong>另外几个调试功能的作用（都可以动手实践下）：</strong></p>
<ul>
<li>
<p>单步跨过、单步进入、单步跳出：控制编译器向下执行一行语句，但具体功能有所差异（调试中一般不适用，所以此处不细讲）</p>
</li>
<li>
<p>继续执行：继续执行程序，遇到下一个断点暂停执行；（最最最常用）</p>
</li>
<li>
<p>停止执行：停止调试程序。</p>
<img src="http://cos.pansis.site/image-20240917215531858.png?abc123" alt="image-20240917215531858" style="zoom:50%;" />
</li>
</ul>
<p>当最后执行完for循环，printf函数会输出结果5到控制台，左侧cnt值也增长到了5</p>
<img src="http://cos.pansis.site/image-20240917215209491.png?abc123" alt="image-20240917215209491" style="zoom:50%;" />
<p>这就是一次相对比较简单的调试了，大家可以亲自动手实践下，可能会到各种奇怪的问题，都非常正常，开发本就是解决问题的一个过程，这个调试虽然简单，但是基本的原理就是这样了，对于很多项目中都可以用到。</p>
<br />
                                            
                                </p>
                            </div>
                            <div class="post_footer">
                                
                                    <div class="meta">
                                        <div class="info"><span class="field tags"><i class="iconfont icon-tag-sm"></i>
                                                
                                                    <a href="https://github.pansis.site/tag/24hangc/" class="article-info">
                                                        24航C
                                                    </a>
                                                    
                                                    <a href="https://github.pansis.site/tag/GWAaV2nvk/" class="article-info">
                                                        教程
                                                    </a>
                                                    
                                            </span>
                                        </div>
                                    </div>
                                    
                                        
                                            <div class="next-post" style="margin-top: 20px;">
                                                <div class="next">下一篇</div>
                                                <a href="https://github.pansis.site/post/c6-jiang-jie-23-hang-c/">
                                                    <h3 class="post-title">
                                                        C6讲解-23航C
                                                    </h3>
                                                </a>
                                            </div>
                                            
                            </div>
                        </div>
                        
                            
                                <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<div id="gitalk-container" style="padding-bottom: 20px;"></div>
<script>
    var pageId = (location.pathname).substring(1, 49) // Ensure uniqueness and length less than 50
    pageId = pageId.endsWith('/') ? pageId.slice(0, -1) : pageId // 以斜杠结尾则去除
    var gitalk = new Gitalk({
        clientID: '9d5eba33618472c44a07',
        clientSecret: '065a85ed04333ceebfc4f01d7ca1674175730339',
        repo: 'fzxl2003.github.io',
        owner: 'fzxl2003',
        admin: ['fzxl2003'],
        id: pageId,
        distractionFreeMode: false  // Facebook-like distraction free mode
    })
    gitalk.render('gitalk-container')
</script>
                                    
                                        
                                                    
                    </div>
                </div>
            </div>
    </div>
    <div class="footer">
    
    <div class="powered_by">
        <a href="https://codeberg.org/kytrun/gridea-theme-one" target="_blank">Theme One,</a>
        <a href="https://open.gridea.dev/" target="_blank">Powered by Gridea&#65281;</a>
    </div>
    
    
        <div class="footer_slogan">
            Powered by <a href="https://github.com/getgridea/gridea" target="_blank">Gridea</a>
        </div>
    
    <div id="back_to_top" class="back_to_top">
        <span>△</span>
    </div>
    
</div>

<script src="https://github.pansis.site/media/scripts/util.js"></script>
        <link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.5.1/styles/default.min.css">
        <script src="//unpkg.com/@highlightjs/cdn-assets@11.5.1/highlight.min.js"></script>
        <script>hljs.highlightAll();</script>
</body>

</html>